Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Отличия в версиях MySQL – 4.0.27 и MySQL – 4.1.16 (BlackByte)
Author Message
BlackByte
Guest





Карма: 388
   поощрить/наказать


PostPosted: Sat Aug 19, 2006 1:16 pm (написано за 1 минуту 25 секунд)
   Post subject: Отличия в версиях MySQL – 4.0.27 и MySQL – 4.1.16
Reply with quote

Извини пожалуйста.

Вы бы не смог ли мне помочь в одном вопросе (запросе).
Для СУБД MySQL.
Тут такая ситуация, я писал запрос для MySQL - 4.1.16 (версия)
А на сервере, где должен выполняться запрос версия MySQL - 4.0.27
И по этому работать не хочет.
Выдает ошибку.
Виделите, у меня там идет запрос с ПОДЗАПРОСОМ, ну т.е. есть такая конструкция:
model_date > (SELECT max(SL.`cash_date`) FROM `shop_stat_log`)
так вот та версия MySQL что находиться на сервере выдает на эту конструкцию ошибку
Что то вроде "не верный синтаксис"
я знаю, что в некоторых случаях ПОДЗАПРОС можно заменить объединением
но вот уже второй день бьюсь не выходит
вы бы могли мне помочь? Ниже я напишу мой запрос (правильный для MySQL - 4.1.16), а его нужно переделать для MySQL - 4.0.27, что он там выполнялся правильно
Заранее спасибо.
Code (SQL): скопировать код в буфер обмена
SELECT
  S.user_id,
  sum(S.model_price) * (SC.percent / 100) AS FIELD_1, U.user_name
FROM
  shop_statistics S,
  shop_stat_cnf SC, shop_users U
WHERE
  (S.user_id = SC.user_id) AND (S.user_id = U.user_id) AND
  (S.discard = 0) AND
  ((model_date > (SELECT max(SL.`cash_date`) FROM `shop_stat_log` SL WHERE (SL.`user_id` = S.`user_id`))) OR
  ((EXISTS(SELECT max(SL.`cash_date`) FROM `shop_stat_log` SL WHERE (SL.`user_id` = S.`user_id`))) AND
  (0 = (SELECT count(SL.`cash_date`) FROM `shop_stat_log` SL WHERE (SL.`user_id` = S.`user_id`)))))
GROUP BY
  S.user_id
HAVING
  (FIELD_1 >= 100)
Не знаю, что ещё тут можно написать, добавить. Запрос верный, выполняется и выдает как раз то что мне нужно...
Но вот не работает на сервере и все тут :( на сервере соответственно я софт (MySQL) поменять не смогу.
Нужно искать решение программно.
Back to top
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Sat Aug 19, 2006 1:45 pm (спустя 28 минут; написано за 40 секунд)
   Post subject:
Reply with quote

Используйте временную таблицу:
Code (SQL): скопировать код в буфер обмена
INSERT INTO temptable SELECT ... FROM origtable WHERE ...
(dev.mysql.com/doc/refman/4.1/en/rewriting-subqueries.html )
Back to top
View user's profile Send private message
BlackByte
Заглянувший



Joined: 19 Aug 2006
Posts: 3
Карма: 0
   поощрить/наказать

Location: Украина

PostPosted: Sat Aug 19, 2006 2:23 pm (спустя 37 минут; написано за 32 секунды)
   Post subject:
Reply with quote

bæv, будьте добры пример для моего случая

Извиняюсь, что то я не совсем понял...
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Sat Aug 19, 2006 5:11 pm (спустя 2 часа 47 минут; написано за 40 секунд)
   Post subject:
Reply with quote

www.botik.ru/~rldp/mysql/mysqlcli/glava02.htm#example-Maximum-column-group-row

— смотрите пример
Back to top
View user's profile Send private message
BlackByte
Заглянувший



Joined: 19 Aug 2006
Posts: 3
Карма: 0
   поощрить/наказать

Location: Украина

PostPosted: Mon Aug 21, 2006 10:34 am (спустя 1 день 17 часов 22 минуты; написано за 33 секунды)
   Post subject:
Reply with quote

Спасибо за помощь.
НО
Решил проблемму тем, что разбил запрос на 3 запроса.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML